# 一对一关系
人和身份证,一个人只有一个身份证,一个身份证只对应一个人
实现: 任意一方添加「唯一」外键(唯一约束),指向另一方主键
# 学生表
| stu_id | name | i_id | 
|---|---|---|
| 1 | Max | 1 | 
| 2 | Ted | 2 | 
# 身份表
| i_id | number | 
|---|---|
| 1 | 420373 | 
| 2 | 442000 | 
# 一对多关系
部门与员工,一个部门对应多个员工,一个员工只对应一个部门
实现: 在「多」建立外键,指向「一」的主键
# 员工表
| e_id | name | dept_id | 
|---|---|---|
| 1 | Max | 1 | 
| 2 | Ted | 2 | 
# 部门表
| dept_id | name | 
|---|---|
| 1 | Customer | 
| 2 | Recruitment | 
# 多对多关系
学生和课程,一个学生可以选择多个课程,一个课程也可以被多个学生选择
实现: 需要借助第三张中间表,中间表至少包含两个字段,这两个字段作为第三张表的外键,分别指向两张表的主键
联合主键: 第三张表可以将两个外键联合作为表的主键,避免出现重复
# 学生表
| stu_id | name | 
|---|---|
| 1 | Max | 
| 2 | Ted | 
# 课程表
| c_id | name | 
|---|---|
| 1 | Math | 
| 2 | English | 
# 中间表
| stu_id | c_id | 
|---|---|
| 1 | 1 | 
| 1 | 2 |